def check(x):
return all(digit not in str(x) for digit in "01235689")
def change(a, b):
x, y = rpos[a], rpos[b]
if x == y:
return 1
res.append((x + 1, y + 1))
rpos[pos[x]], rpos[pos[y]] = rpos[pos[y]], rpos[pos[x]]
pos[x], pos[y] = pos[y], pos[x]
return 1
n = int(input())
a = list(map(int, input().split()))
b = [(a[i], i) for i in range(n)]
pos = [i for i in range(n)]
rpos = [i for i in range(n)]
b.sort()
res = []
id = -1
ok = 1
for i in range(n):
if i != b[i][1]:
ok = 0
if id == -1 and check(a[i]):
id = i
if ok == 1:
print(0)
exit(0)
if ok == 0 and id == -1:
print(-1)
exit(0)
for i in range(n):
index = b[i][1]
if id == index:
continue
change(pos[i], id)
change(id, index)
print(len(res))
for x, y in res:
print(x, y)
97. Interleaving String | 543. Diameter of Binary Tree |
124. Binary Tree Maximum Path Sum | 1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts |
501A - Contest | 160A- Twins |
752. Open the Lock | 1535A - Fair Playoff |
1538F - Interesting Function | 1920. Build Array from Permutation |
494. Target Sum | 797. All Paths From Source to Target |
1547B - Alphabetical Strings | 1550A - Find The Array |
118B - Present from Lena | 27A - Next Test |
785. Is Graph Bipartite | 90. Subsets II |
1560A - Dislike of Threes | 36. Valid Sudoku |
557. Reverse Words in a String III | 566. Reshape the Matrix |
167. Two Sum II - Input array is sorted | 387. First Unique Character in a String |
383. Ransom Note | 242. Valid Anagram |
141. Linked List Cycle | 21. Merge Two Sorted Lists |
203. Remove Linked List Elements | 733. Flood Fill |